js中push方法小结

您所在的位置:网站首页 push normal是什么模式 js中push方法小结

js中push方法小结

2023-12-03 20:20| 来源: 网络整理| 查看: 265

今天笔试做一道算法题,老是通过不了,头大,直到交卷也没有通过,考完后查了一下,原来是我push的用法用错了,也是服了,重点注意这里arr.push后返回的是push的长度,我却一直用var arr=arr.push('first'),然后输出arr总是1,也是蠢爆了。。。。。。下面总结一下push方法吧

push方法是数组中的

var arr = [] var length = arr.push('first') console.log(arr) // ['first'] console.log(length) // 1 push方法会改变原有数组,且返回改变后数组的长度

尝试添加各种元素

var arr = [] arr.push({}) console.log(arr) // [Object] arr.push([],{},'str',1,null,undefined) // 添加多个元素用逗号隔开 console.log(arr) // Array, Object, 1, null, undefined

添加多个元素

ES6的数组扩展

var arr = [1,2,3] var nArr = ['first', 'second', 'third'] // 想依次添加每个值到数组中 // arr.push(nArr) 如果这样添加会给arr添加多一个数组元素,arr.length = 4 arr.push(...nArr) ES6的方法数组扩展 console.log(arr) // [1,2,3,'first', 'second', 'third'] // 这种扩展方法仅对Array有效

apply使用

var arr = [1,2,3] var nArr = ['first', 'second', 'third'] // 想依次添加每个值到数组中 Array.prototype.push.apply(arr,nArr) // apply 参数传入使用数组的方式 console.log(arr) // [1,2,3,'first', 'second', 'third']

对象能用push吗?

直接用是不行的,可以使用call方法来改用 了解V8引擎 push实现的原理

function ArrayPush () { var n = TO_UINT32(this.length) // 被push的对象的length var m = %_ArgumentsLength() // push的参数个数 for (var i = 0; i } var obj2 = {0: 'firstValue'} Array.prototype.push.call(obj, 'first') Array.prototype.push.call(obj2, 'first') console.log(obj) // {0: 'first', length: 1} console.log(obj2) // {0: 'first', length: 1} 原本的'firstValue'会被替代

好的push方法到此为止再总结一下pop(),unshift(),shift()方法吧。 1、push()、pop()和unshift()、shift()

联系:这两组同为对数组的操作,并且会改变数组的本身的长度及内容。

区别:不同的是 push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。

 var arr = [1, 2];

2、push()和unshift()

向数组的 尾部/头部 添加若干元素,并返回 数组的 新长度;

  arr.push(3,4); //返回 arr 的新长度 4   arr ; // arr = [1,2,3,4];   arr.unshift(0,0.5); // 返回 arr 的新长度 6   arr ; // arr = [0,0.5,1,2,3,4];

3、pop()和shift()

从数组的 尾部/头部 删除1个元素(删且只删除1个),并返回 被删除的元素;空数组是继续删除,不报错,但返回undefined;

  arr.pop();      //返回 4;      arr ;         // arr = [0,0.5,1,2,3];      arr.pop();      //返回 3;    arr ;         // arr = [0,0.5,1,2];   arr.shift();     // 返回 0 ;      arr ;        // arr = [0.5,1,2]

PS: pop()和shift() 不接受传参,即使传了参数也没什么卵用;

  arr.pop(3) ; // 返回 2;永远返回最后一个;   arr ;        // arr = [0.5,1];   arr.shift(1);    // 返回 0.5; 永远返回第一个;   arr ;        // arr = [1];   arr.pop() ;     // 返回 1;   arr ;        // arr = [];   arr.shift()     // 返回 undefined;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3